Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

СТВОРЕННЯ ВЛАСНОЇ КОМПОНЕНТИ .

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Не вказано
Кафедра:
Автоматизовані Системи Управління

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
КН-4

Частина тексту файла

Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра автоматизованих систем управління  Створення власної компоненти Лабораторна робота № 2 з дисципліни " Об‘єктно орієнтоване програмування" Виконав: ст. гр. КН-4 Львів –2008 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, OpenGL, Glaux, DGlut, StdCtrls; // підключаємо бібліотеки OpenGL, GLAux, GlUt type GLObject = (SolidICOSAHEDRON); TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Timer1Timer(Sender: TObject); private mc:array[1..3]of GLFloat; DC : HDC; hrc: HGLRC; Angle : GLfloat; i: integer; procedure DrawScene(Tx, Ty, Tz, Angle, Rx, Ry, Rz, Red, Green, Blue : GLdouble; MyObject : GLObject); procedure SetDCPixelFormat; public { Public declarations } end; var Form1: TForm1; MyObject : GLObject; implementation procedure TFOrm1.DrawScene(Tx, Ty, Tz, Angle, Rx, Ry, Rz, Red, Green, Blue : GLdouble; MyObject : GLObject); begin glRotatef(Angle, Rx, Ry, Rz); glTranslated(Tx,Ty,Tz); glColor3d(Red,Green,Blue); case MyObject of SolidIcosahedron : auxSolidIcosahedron (2); end; end; {$R *.dfm} procedure OutText (txt : PChar); begin glPushAttrib(GL_ALL_ATTRIB_BITS); glListBase(1000); glCallLists(Length (txt), GL_UNSIGNED_BYTE, txt); glPopAttrib; end; procedure TForm1.FormCreate(Sender: TObject); const pos : Array [0..3] of GLFloat = (3.0, 3.0, 3.0, 1.0); dir : Array [0..2] of GLFloat = (-1.0, -1.0, -1.0); begin Angle := 0; DC := GetDC (Handle); SetDCPixelFormat; hrc := wglCreateContext (DC); wglMakeCurrent (DC, hrc); glMatrixMode (GL_PROJECTION); glFrustum (-1, 1, -1, 1, 1, 8); glMatrixMode (GL_MODELVIEW); wglUseFontOutlines(canvas.handle, 0, 255, 1000, 0, 0.10,WGL_FONT_POLYGONS, nil); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glLightfv(GL_LIGHT0, GL_POSITION, @pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, @dir); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); Timer1.Interval := 25; Timer1.Enabled := True; end; procedure TForm1.FormPaint(Sender: TObject); begin glClearColor (1,0.8, 0.2, 1); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glPushMatrix; DrawScene(1, 0, 1,Angle, -1, -1, 0, 0, 0.5, 1,SolidIcosahedron); glPopMatrix; SwapBuffers(DC); end; procedure TForm1.FormDestroy(Sender: TObject); begin Timer1.Enabled:=False; wglMakeCurrent(0, 0); wglDeleteContext(hrc); ReleaseDC (Handle, DC); DeleteDC (DC); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Angle := Angle + 1.0; If (Angle >= 360.0) then Angle := 0.0; InvalidateRect(Handle, nil, False); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If Key = VK_ESCAPE then Close; InvalidateRect(Handle, nil, False); end; procedure TForm1.SetDCPixelFormat; var pfd : TPixelFormatDescriptor; nPixelFormat : Integer; begin FillChar (pfd, SizeOf (pfd), 0); pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER; nPixelFormat := ChoosePixelFormat (DC, @pfd); SetPixelFormat (DC, nPixelFormat, @pfd); end; end.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини